using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.GamerServices;
+using Microsoft.Xna.Framework.Media;
+using Microsoft.Xna.Framework.Audio;
using SuperPolarity;
#endregion
/// </summary>
public class SuperPolarity : Game
{
- public static GraphicsDeviceManager graphics;
+ public GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
+ public static int OutlierBounds;
+
+ public Player Player;
+
+ Screen EntryScreen;
+
+ protected Song TitleSong;
+ protected Song GameSong;
+ protected SoundEffect GameOverSound;
+
public SuperPolarity()
: base()
{
- SuperPolarity.graphics = new GraphicsDeviceManager(this);
- SuperPolarity.graphics.PreferMultiSampling = true;
+ graphics = new GraphicsDeviceManager(this);
+ graphics.PreferMultiSampling = true;
+ graphics.PreferredBackBufferWidth = 1280;
+ graphics.PreferredBackBufferHeight = 720;
+ graphics.ToggleFullScreen();
+
Content.RootDirectory = "Content";
ActorFactory.SetGame(this);
+ ParticleEffectFactory.SetGame(this);
+ ActorManager.SetGame(this);
+ ScreenManager.SetGame(this);
+
+ EntryScreen = (Screen)new TitleScreen(this);
}
/// <summary>
{
base.Initialize();
- InputController.RegisterEventForButton("changePolarity", Buttons.A);
- InputController.RegisterEventForKey("changePolarity", Keys.Z);
+ InputController.RegisterEventForKey("fullScreenToggle", Keys.F11);
+ InputController.Bind("fullScreenToggle", HandleFullScreenToggle);
+
+ EntryScreen.Initialize();
+
+ OutlierBounds = 100;
+ }
- InputController.RegisterEventForButton("shoot", Buttons.X);
- InputController.RegisterEventForKey("shoot", Keys.X);
+ protected void HandleFullScreenToggle(float value)
+ {
+ graphics.ToggleFullScreen();
+ graphics.ApplyChanges();
}
/// <summary>
/// </summary>
protected override void LoadContent()
{
+
+ MediaPlayer.IsRepeating = true;
+ GameSong = Content.Load<Song>("Sound\\polaritytheme.wav");
+ GameOverSound = Content.Load<SoundEffect>("Sound\\gameover");
+
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
- Vector2 playerPosition = new Vector2(GraphicsDevice.Viewport.TitleSafeArea.X, GraphicsDevice.Viewport.TitleSafeArea.Y + GraphicsDevice.Viewport.TitleSafeArea.Height / 2);
+ ScreenManager.Push(EntryScreen);
- ActorFactory.CreateShip(Ship.Polarity.Positive, new Vector2(200, 200));
- ActorFactory.CreateShip(Ship.Polarity.Negative, new Vector2(400, 200));
- ActorFactory.CreateMainShip(playerPosition);
+ Player = new Player(this);
}
/// <summary>
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
Exit();
- // TODO: Add your update logic here
+ ScreenManager.Update(gameTime);
- InputController.UpdateInput();
- ActorManager.Update(gameTime);
+ Player.Update();
base.Update(gameTime);
}
spriteBatch.Begin();
- ActorManager.Draw(spriteBatch);
+ ScreenManager.Draw(spriteBatch);
spriteBatch.End();
base.Draw(gameTime);
}
+
+ public void PlaySong(string songName)
+ {
+ // temp stuff before media manager is in
+ if (songName == "game")
+ {
+ MediaPlayer.Play(GameSong);
+ }
+ }
+
+ public void GameOver()
+ {
+ MediaPlayer.Stop();
+ GameOverSound.Play();
+ ScreenManager.Pop();
+ }
}
}